package tests;

import common.Utils;
import org.openqa.selenium.By;

import java.io.IOException;

public class RegisterPage extends Utils {
    public static String url = "http://127.0.0.1:9580/sign-up.html";

    public RegisterPage() {
        super(url);
    }

    //测试页面可以正常打开
    public void RegisterPageRight() {
        //论坛logo图标
        driver.findElement(By.cssSelector("body > div > div > div.text-center.mb-4 > img"));
        //用户注册
        driver.findElement(By.cssSelector("#signUpForm > div > h2"));
    }

    //注册成功
    public void RegisterSuc() throws InterruptedException {
        //输入用户名
        driver.findElement(By.cssSelector("#username")).sendKeys("sss16");
        //输入昵称
        driver.findElement(By.cssSelector("#nickname")).sendKeys("sss1");
        //输入密码
        driver.findElement(By.cssSelector("#password")).sendKeys("123456");
        //输入确认密码
        driver.findElement(By.cssSelector("#passwordRepeat")).sendKeys("123456");
        //点击同意使用条款和隐私服务
        driver.findElement(By.cssSelector("#policy")).click();
        //点击注册
        driver.findElement(By.cssSelector("#submit")).click();
        Thread.sleep(1000);
        //校验注册是否成功并返回登录页面
        String title = driver.getTitle();
        assert title.equals("比特论坛 - 用户登录");

    }

    //注册失败01--该用户已存在
    public void RegisterFai01() throws IOException {
        //在登录页面点击注册按钮
        // driver.findElement(By.cssSelector("body > div > div > div > div:nth-child(1) > div > div.text-center.text-muted.mt-3 > a")).click();
        //输入用户名
        driver.findElement(By.cssSelector("#username")).sendKeys("1");
        //输入昵称
        driver.findElement(By.cssSelector("#nickname")).sendKeys("1");
        //输入密码
        driver.findElement(By.cssSelector("#password")).sendKeys("123");
        //输入确认密码
        driver.findElement(By.cssSelector("#passwordRepeat")).sendKeys("123");
        //点击同意使用条款和隐私服务
        driver.findElement(By.cssSelector("#policy")).click();
        //点击注册
        driver.findElement(By.cssSelector("#submit")).click();

        //获取当前异常文本
        String fail01 = driver.findElement(By.cssSelector("body > div.jq-toast-wrap.bottom-right > div > h2")).getText();
        //对当前异常进行截图
        getScreenShot(getClass().getName());
        //断言
        assert fail01.equals("警告");

    }

    //注册失败02--用户名为空
    public void RegisterFai02() throws IOException {
        //刷新当前注册页面
        driver.navigate().refresh();
        //输入用户名 当前用户名为空
        driver.findElement(By.cssSelector("#username"));
        //输入昵称
        driver.findElement(By.cssSelector("#nickname")).sendKeys("1");
        //输入密码
        driver.findElement(By.cssSelector("#password")).sendKeys("123");
        //输入确认密码
        driver.findElement(By.cssSelector("#passwordRepeat")).sendKeys("123");
        //点击同意使用条款和隐私服务
        driver.findElement(By.cssSelector("#policy")).click();
        //点击注册
        driver.findElement(By.cssSelector("#submit")).click();

        //获取当前异常文本
        String fail02 = driver.findElement(By.cssSelector("#signUpForm > div > div:nth-child(2) > div")).getText();
        //对当前异常进行截图
        getScreenShot(getClass().getName());
        //断言
        assert fail02.equals("用户名不能为空");

    }

    //注册失败03--昵称为空
    public void RegisterFai03() throws IOException {
        //刷新当前注册页面
        driver.navigate().refresh();
        //输入用户名
        driver.findElement(By.cssSelector("#username")).sendKeys("1");
        //输入昵称 当前昵称为空
        driver.findElement(By.cssSelector("#nickname"));
        //输入密码
        driver.findElement(By.cssSelector("#password")).sendKeys("123");
        //输入确认密码
        driver.findElement(By.cssSelector("#passwordRepeat")).sendKeys("123");
        //点击同意使用条款和隐私服务
        driver.findElement(By.cssSelector("#policy")).click();
        //点击注册
        driver.findElement(By.cssSelector("#submit")).click();
        //获取当前异常文本
        String fail03 = driver.findElement(By.cssSelector("#signUpForm > div > div:nth-child(3) > div")).getText();
        //截图保存当前异常
        getScreenShot(getClass().getName());
        //断言
        assert fail03.equals("昵称不能为空");

    }

    //注册失败04--密码与确认密码不一致
    public void RegisterFai04() throws IOException {
        //刷新当前注册页面
        driver.navigate().refresh();
        //输入用户名
        driver.findElement(By.cssSelector("#username")).sendKeys("101");
        //输入昵称
        driver.findElement(By.cssSelector("#nickname")).sendKeys("111");;
        //输入密码
        driver.findElement(By.cssSelector("#password")).sendKeys("13");
        //输入确认密码
        driver.findElement(By.cssSelector("#passwordRepeat")).sendKeys("123");
        //点击同意使用条款和隐私服务
        driver.findElement(By.cssSelector("#policy")).click();
        //点击注册
        driver.findElement(By.cssSelector("#submit")).click();
        //获取当前异常文本

        String fail04 = driver.findElement(By.cssSelector("#signUpForm > div > div:nth-child(5) > div > div")).getText();
        getScreenShot(getClass().getName());

        assert fail04.equals("请检查确认密码");

    }

    //注册失败05--未点击同意使用条款和隐私服务
    public void RegisterFai05() throws IOException {
        //刷新当前注册页面
        driver.navigate().refresh();
        //输入用户名
        driver.findElement(By.cssSelector("#username")).sendKeys("101");
        //输入昵称
        driver.findElement(By.cssSelector("#nickname")).sendKeys("111");;
        //输入密码
        driver.findElement(By.cssSelector("#password")).sendKeys("123");
        //输入确认密码
        driver.findElement(By.cssSelector("#passwordRepeat")).sendKeys("123");
        //未点击同意使用条款和隐私服务
        driver.findElement(By.cssSelector("#policy"));
        //点击注册
        driver.findElement(By.cssSelector("#submit")).click();
        //截图保存当前异常
        getScreenShot(getClass().getName());


    }


}

